import request from "@/utils/request";
import { get } from "sortablejs";

const ORG_BASE_URL = "/api/v1/orgs";

const OrgAPI = {
  /** 获取机构管理分页数据 */
  getPage(queryParams?: OrgPageQuery) {
    return request<any, PageResult<OrgPageVO[]>>({
      url: `${ORG_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取机构管理表单数据
   *
   * @param id 机构管理ID
   * @returns 机构管理表单数据
   */
  getFormData(id: number) {
    return request<any, OrgForm>({
      url: `${ORG_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /** 添加机构管理*/
  add(data: OrgForm) {
    return request({
      url: `${ORG_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 更新机构管理
   *
   * @param id 机构管理ID
   * @param data 机构管理表单数据
   */
  update(id: number, data: OrgForm) {
    return request({
      url: `${ORG_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 批量删除机构管理，多个以英文逗号(,)分割
   *
   * @param ids 机构管理ID字符串，多个以英文逗号(,)分割
   */
  deleteByIds(ids: string) {
    return request({
      url: `${ORG_BASE_URL}/${ids}`,
      method: "delete",
    });
  },

  /**
   * 机构字典<OrgId,OrgName>
   */
  getOptions() {
    return request({
      url: `${ORG_BASE_URL}/dict`,
      method: "get",
    });
  },

  /**
   * 根据orgId查询机构工作人员
   */
  getWorkersByOrgId(orgId?: string) {
    return request({
      url: `${ORG_BASE_URL}/${orgId}/byOrgId`,
      method: "get",
    });
  },

  /**
   * 根据requestId查询机构工作人员
   */
  getWorkersByRequestId(requestId?: string) {
    return request({
      url: `${ORG_BASE_URL}/${requestId}/byRequestId`,
      method: "get",
    });
  },

  /**
   * 查询所有工作人员
   */
  getAllWorkers() {
    return request({
      url: `${ORG_BASE_URL}/all-workers`,
      method: "get",
    });
  },
};

export default OrgAPI;

/** 机构管理分页查询参数 */
export interface OrgPageQuery extends PageQuery {
  orgName?: string;
  /** 机构地址 */
  address?: string;
  /** 联系方式 */
  contact?: string;
  /** 审核状态 */
  status?: number;
}

/** 机构管理表单对象 */
export interface OrgForm {
  /** 机构表主键 */
  id?: number;
  oldUserId?: string;
  userId?: string;
  username?: string;
  orgName?: string;
  /** 机构地址 */
  address?: string;
  /** 联系方式 */
  contact?: string;
  /** 资质证明文件 */
  certification?: [];
  /** 审核状态 */
  status?: number;
  createTime?: Date;
  createBy?: number;
  updateTime?: Date;
  updateBy?: number;
}

/** 机构管理分页对象 */
export interface OrgPageVO {
  /** 机构表主键 */
  id?: number;
  orgName?: string;
  /** 机构地址 */
  address?: string;
  /** 联系方式 */
  contact?: string;
  /** 资质证明文件 */
  certification?: [];
  /** 审核状态 */
  status?: number;
  createTime?: Date;
  createBy?: number;
  updateTime?: Date;
  updateBy?: number;
}
